串口发送模块uart 您所在的位置:网站首页 uart 115200 串口发送模块uart

串口发送模块uart

2023-12-18 20:54| 来源: 网络整理| 查看: 265

1. 原理介绍

本文是学习小梅哥串口模块教程后的整理总结。

用于数据接收与发送的常用通信协议: UART(通用异步收发传输器)、I2C(集成电路总线)、USB2.0/3.0(通用串行总线)、SPI(串行外围总线)、Ethernet(以太网) 等。

串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。

异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。

这里讲解基于RS232接口标准规范的uart_tx异串口发送模块。 发送并行数据,转为串行数据送入上位机orPC等。 UART 是异步串行通信的总称。而** RS232、 RS449、 RS423、 RS422 和 RS485 等,是对应各种异步串行通信口的接口标准和总线标准,它们具体规定了通 信口的电气特性、传输速率、连接特性和接口的机械特性**等内容。

RS232的 DB9 接口的针脚定义

在这里插入图片描述 具体每个针脚的功能不再赘述,这里重点研究uart的传输时序图

2. UART串口发送数据的传输时序

需要设置数据位数、波特率、奇偶校验类型和停止位数

数据位( Data bits)

该参数定义单个 UART 数据传输在开始到停止期间发送的数据位数。 可选择为: 5、 6、 7 或者 8(默认)。

波特率( Baud)

是指从一设备发到另一设备的波特率,即每秒钟可以通信数据**比特(bit)**个数。 典型的波特率有 300, 1200, 2400, 9600, 19200, 115200 等,单位bit/s,也即是bps。一般通信两端设备都要设为相同的波特率,有些设备也可设置为自动检测波特率。

奇偶校验类型( Parity Type)

是用来验证数据的正确性。如果用户选择数据长度为 8 位,是因为没有多余的比特可被用来作为奇偶校验位,因此就叫做“无奇偶校验( Non)”。此处不再赘述。

停止位( Stop bits):

在每个字节的数据位发送完成之后,发送停止位,来标志着一次数据传输完成,同时用来帮助接受信号方硬件重同步。 可选择为: 1( 默认)、 1.5 或者 2 位。 在 RS-232 标准中, 最常用的配置是 8N1(即8数据位+无奇偶校验+1停止位), 其发送一个字节时序图如图 在这里插入图片描述 一个完整的字节包括1位起始位、8 位数据位、1位停止即总共10位数据来算,要想完整的实现这10位数据的发送,就需要11个波特率时钟脉冲, 第1个脉冲标记一次传输的起始, 第 11 个脉冲标记一次传输的结束。 BPS_CLK 信号的第一个上升沿到来时,字节发送模块开始发送起始位,接下来的 2 到 9 个上升沿, 发送 8 个数据位,第 10 个上升沿到第 11 个上升沿为停止位的发送。

也可以采用在每个起始位之前添加一位传 “1’b1” 的位,用来为START_BIT的最初变化显示为下降。,以便串口接收模块识别下降沿,开始接收数据。这样也就不用在最后再添加第11个脉冲来标记传输结束了。

3.模块设计

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

(1)波特率时钟模块

在这里插入图片描述

波特率计数值bps_DR计算原理:在这里插入图片描述

以9600bps为例:bps_DR=[(10^9 ns)/(9600bps*20ns)]-1=5207(9600bps的分频计数最大值)

波特率时钟及计数模块代码 //baud_set reg [15:0] bps_DR;//分频计数最大值 reg bps_clk; //波特率时钟 reg [15:0]div_cnt;//分频计数器 reg [15:0]bps_DR;//分频计数最大值 reg [3:0]bps_cnt;//波特率时钟计数器 always@(posedge Clk or negedge Rst_n) if(!Rst_n) bps_DR


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有